package org.springblade.pm.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

@Data
@TableName("blade_pm_plan_details")
@EqualsAndHashCode
public class PlanDetails implements Serializable {
	private static final long serialVersionUID = 1L;
	/**
	 * 主键id
	 */
	@TableId(value = "id", type = IdType.AUTO)
	@ApiModelProperty(value = "主键id")
	private Integer id;


	/**
	 * 计划主表id
	 */
	@ApiModelProperty(value = "计划主表id")
	private Integer pid;

	/**
	 * 计划名称
	 */
	@ApiModelProperty(value = "计划名称")
	private String name;


	/**
	 * 计划开始时间
	 */
	@DateTimeFormat(pattern="yyyy-MM-dd")//接受前台的时间格式 传到后台的格式
	@JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")//作用：后台的时间 格式化 发送到前台
	@ApiModelProperty(value = "计划开始时间")
	private Date planstarttime;

	/**
	 * 计划结束时间
	 */
	@DateTimeFormat(pattern="yyyy-MM-dd")//接受前台的时间格式 传到后台的格式
	@JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")//作用：后台的时间 格式化 发送到前台
	@ApiModelProperty(value = "计划结束时间")
	private Date planendtime;

	/**
	 * 工期
	 */
	@ApiModelProperty(value = "工期")
	private Integer cycle;

	/**
	 * 时间开始时间
	 */
	@DateTimeFormat(pattern="yyyy-MM-dd")//接受前台的时间格式 传到后台的格式
	@JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")//作用：后台的时间 格式化 发送到前台
	@ApiModelProperty(value = "时间开始时间")
	private Date starttime;

	/**
	 * 实际结束时间
	 */
	@DateTimeFormat(pattern="yyyy-MM-dd")//接受前台的时间格式 传到后台的格式
	@JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")//作用：后台的时间 格式化 发送到前台
	@ApiModelProperty(value = "实际结束时间")
	private Date endtime;

	/**
	 * 排序
	 */
	@ApiModelProperty(value = "排序")
	private Integer sort;

	/**
	 * 状态状态（未开始、进行中、已结束、已延期）
	 */
	@ApiModelProperty(value = "状态状态（未开始、进行中、已结束、已延期）")
	private Integer status;

	/**
	 * 创建时间
	 */
	@DateTimeFormat(pattern="yyyy-MM-dd")//接受前台的时间格式 传到后台的格式
	@JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")//作用：后台的时间 格式化 发送到前台
	@ApiModelProperty(value = "创建时间")
	private Date createtime;

	/**
	 * 创建人
	 */
	@ApiModelProperty(value = "创建人")
	private Integer createBy;

	/**
	 * 备注
	 */
	@ApiModelProperty(value = "备注")
	private String remark;

	@TableField(exist = false)
	private List<PlanMilestone> children;

}
